1. Field of the Invention
The present invention relates to a Voice over Internet Protocol (VoIP) system. More particularly, the present invention relates to an apparatus and method for voice processing of VoIP capable of performing a VoIP application level gateway function (ALG) when VoIP signaling is processed in order to solve a restriction of the VoIP service according to an application of network address translation/port translation (NAT/PT, APT or NAPT) technology when a private network internally operating a private Internet protocol (IP) interacts with a public (global) network using a public IP through the NAPT.
2. Description of the Related Art
Interest in VoIP service is increasing with the high spread of Internet. The VoIP service enables telephone users to use long distance call and international call services in the Internet or Intranet environment with only a local call charge by integrating telephone services utilizing an Internet Protocol (IP) network.
A session initiation protocol (SIP), a media gateway control protocol (MGCP), H.323, and the like are defined in the VoIP.
The SIP is an application layer control protocol based on a simple text, which enables one or more participants to generate/correct/terminate sessions together with one another. The sessions include Internet teleconference, Internet telephone, Internet interview, Internet event notification, Internet instant messaging, and the like.
The MGCP is also known as ‘H.248’ or ‘Megaco’, which is a standard protocol for signal operation and session management needed while progressing a multimedia conference.
The H.323 is a standard defined in ‘ITU-T’ to transmit multimedia teleconference data through a network of a packet exchange type such as a TCP/IP.
Network address translation (NAT, also known as Network masquerading or IP-masquerading) is a technique used in computer networking, which relies on rewriting IP addresses of network packets passing through a router or firewall. This is merely a trick, in the sense that routers are not supposed to act in this way, however, it is still a very useful and widely used trick. Modern personal routers usually provide NAT as a core function. NAT became popular because of the IPv4 address shortage.
The NAT was proposed to solve the public IP address shortage problem by allowing a small number of public IP addresses to be used in the IP network, which is explained in the general agreement of Request for Comments (RFC) 1631 by the Network Working Group entitled “The IP Network Address Translator (NAT)” May 1994.
There are two kinds of network address translation. What is often called simply “NAT” is also sometimes named “NAT/PT,” “APT” or “NAPT”, and refers to network address translation involving the mapping of port numbers, allowing multiple machines to share a single IP address. The other simpler form is also called NAT, or “basic NAT” or “static NAT”, and involves only address translation, not port mapping. This requires an external IP address for each simultaneous connection. The feature is often found in ADSL (Asymmetric Digital Subscriber Line) routers, sometimes labeled “DMZ host”, to allow a computer to accept all external connections even when the only available external IP address is used by the router itself.
NAT with port-translation can be further distinguished to two kinds: source address translation (source NAT), where the IP address of the computer which initiated the connection is rewritten, and its counterpart: destination address translation (destination NAT).
In other words, network address translation/port translation (NAPT) technology being one of the NAT technologies is a network technology that is widely used to conceal the IP address exhaustion problem or a configuration of internal network, which is basically mounted in a router, a fire wall or the like to convert an internal private IP into a public IP that can be routed in the Internet, and to convert the port number of a TCP/UDP as well as the IP address.
When a host of a private network configured by operating a private IP wishes to communicate with a host of a global network, the host of the private network makes a communication using a private IP address assigned to the host as a source address. Since the private IP address is a meaningless address system in the global network, the private IP address should be converted into a public address in the public network. At this time, there is used a global IP address assigned for the NAPT in order to convert the address, the global IP being managed as a Pool and having one or more IP address.
A source address of the packet should be converted into a global IP address when data is externally transmitted from a private network (outgoing transmission), and a destination address of the packet should be converted into the private IP address when data is transmitted from the global network to the private network (incoming transmission).
Generally, the NAPT is performed in a router that connects a private network operating the private IP to a global network performing routing using a public IP.
The router performing the NAPT enables several hosts of the private network to share one global IP and to communicate with the global network at the same time, by supporting N:1 binding through conversion of an IP address being information on Layer 3 and port conversion of a TCP/UDP layer.
However, while the NAPT is a network address conversion method for maximizing an IP address usage rate using port information of a transport layer as well as destination address information of a network layer to make the address conversion, it is complicated and slow since an IP layer and the TCP/UDP layer should be considered to convert the IP address. Also, the NAPT has a restriction that it dose not support services (Talk, RealPlayer, and so on) sensitive to the port number without using a corresponding application level gateway (ALG).
As described in RFC 2663 “IP Network Address Translator (NAT) Terminology and Considerations”, August 1999, the NAT function cannot by itself support all applications transparently and often must co-exist with application level gateways (ALGs) for this reason. People looking to deploy NAT based solutions need to determine their application requirements first and assess the NAT extensions (i.e., ALGs) necessary to provide application transparency for their environment.
Not all applications lend themselves easily to translation by NAT devices; especially those that include IP addresses and TCP/UDP ports in the payload. Application Level Gateways (ALGs) are application specific translation agents that allow an application on a host in one address realm to connect to its counterpart running on a host in different realm transparently. An ALG may interact with NAT to set up state, use NAT state information, modify application specific payload and perform whatever else is necessary to get the application running across disparate address realms.
The NAPT also has a problem in that a packet that is divided into several components to be transmitted should be reassembled in order to make to a complete packet.
Furthermore, since Internet applications such as H.323, FTP (File Transfer Protocol) and Messenger include identification information (a source address and a source port) of a packet generation host in a packet data unit (PDU) of a packet, it is not possible to support the applications in network address conversion equipment without the ALG. Accordingly, a number of ALGs are requested in order to support various Internet applications.
As such, as the NAPT is performed in the router, the router generally includes an ALG function capable of analyzing the PDU of the packet.
Accordingly, when a host of a private network generates VoIP signaling and transmits the VoIP signaling to a public network, the router converts the private IP information into the public IP information through the NAPT in an IP header of the VoIP signaling by capturing and analyzing the VoIP signaling transmitted from the corresponding host of the private network. And, the router converts source address information existing in the PDU of the VoIP signaling into the public IP address and the public port by performing the ALG function and transmits the converted information to the public network.